/**
 * 可以迭代的要素：1. 有Symbol.interator属性，和next方法
 */
let iterator = {
    count: 0,
    // 有[Symbol.interator]属性，并且返回一个对象，
    // 对象中有next函数，函数中需要返回一个对象，
    // 对象中有value和done，value是返回的值，done是否结束遍历
    [Symbol.iterator]() {
        return {
            next: () => {
                if (this.count > 10) {
                    return {
                        value: this.count,
                        done: true
                    }
                } else {
                    return {
                        value: this.count++,
                        done: false
                    }
                }
            }
        }
    }
}

let obj = {
    name: 'ck',
    ...iterator
}

for (const iterator of obj) {
    console.log(iterator); // TypeError: obj is not iterable
}

